package com.wyu.blog.dao;


import com.wyu.blog.entity.Article;
import com.wyu.blog.entity.Category;
import com.wyu.blog.entity.Sort;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Repository;

import java.util.HashMap;
import java.util.List;

@Mapper
@Repository
@Qualifier("dbSqlSessionTemplate")
public interface ArticleMapper {


    //根据用户ID查询所有文章
    List<Article> selectArticleByUserId(Integer userId);

    //查询所有文章
    List<Article> selectAllArticle();

    //模糊查询文章信息
    List<Article> selectArticleByLike(String articleTitle);

    //模糊查询文章数
    Integer selectArticleNumByLike(String articleTitle);

    //根据文章ID查询文章
    Article selectArticleById(Integer articleId);

    //根据文章标题查询文章
    Article selectArticleByTitle(String articleTitle);

    //根据用户ID和分类ID查询文章
    List<Article> selectArticle(HashMap map);

    //根据用户ID和分类ID查询文章数
    Integer selectArticleSortNum(HashMap map);

    //查询热门文章
    List<Article> selectHotArticle();

    //查询热门文章
    List<Article> selectRecentArticle();


    //查询置顶文章
    List<Article> selectTopArticle();

    //查询个人文章总数
    Integer selectArticleNum(Integer userId);

    //保存博客
    void insertArticle(Article article);




    //查询个人文章总数
    Integer deleteArticleById(Integer articleId);

    //查询个人文章分类
    List<Sort> selectSortById(Integer userId);

    //查询个人文章分类总数
    Integer selectSortNum(Integer userId);

    //查询每个用户的文章分类信息
    List<Category> selectCategoryById(Integer userId);

    //查询所有文章分类的信息
    List<Category> selectAllCategory();

    //根据ID查询文章分类的信息
    Category selectCategoryBySortId(Integer sortId);

    //根据分类ID查询文章信息
    List<Article> selectArticleBySortId(Integer sortId);

    Integer updateArticleById(Article article);

    Integer updateArticle(Article article);

    Integer updateViewNum(Article article);

    Integer updateCommentNum(Article article);

    Integer updateCollectNum(Article article);
}
